package com.chaodev.base.service;

import com.github.pagehelper.PageInfo;
import com.chaodev.base.dto.ActivityNoticeDto;
import com.chaodev.base.dto.ActivitySignUpDto;
import com.chaodev.base.model.ActivityNotice;
import com.chaodev.base.model.ActivitySignUp;
import com.chaodev.base.model.UserInfo;
import org.springframework.dao.DataAccessException;

import java.util.List;

/**
 * vcbase
 *
 * @author 95634
 * @描述
 * @date 2023/5/17 17:21
 **/
public interface ActivityServie {
    PageInfo<ActivityNotice> queryPageList(ActivityNoticeDto dto);

    PageInfo<ActivityNotice> queryMyPageList(int pae, int rows, ActivityNotice dto);

    /**
     * 获取我未参与过的活动
     */
    PageInfo<ActivityNotice> getMyNoSignUpActivity(int pae, int rows, ActivityNotice dto);

    /**
     * 查询列表
     *
     * @param tbActivityNotice
     * @return List
     */
    List<ActivityNotice> queryDataList(ActivityNotice tbActivityNotice);

    /**
     * 保存活动通告表信息
     */
    void saveData(ActivityNotice ActivityNotice, UserInfo userInfo);

    /**
     * 更新活动通告表信息
     */
    void updateDataById(ActivityNotice tbActivityNotice);

    /**
     * 删除活动通告表信息
     *
     * @param id
     **/
    void deleteDataById(String id);

    ActivityNotice findDataById(String id);

    /**
     * 获取活动报名表信息
     *
     * @param id
     * @return TbActivitySignUp
     */
    ActivitySignUp findSignUpDataById(String id);

    /**
     * 保存活动报名表信息
     *
     * @param tbActivitySignUp
     * @throws DataAccessException
     */
    void saveSignUpData(ActivitySignUp tbActivitySignUp);

    /**
     * 新增活动报名表信息
     *
     * @param tbActivitySignUp
     * @throws DataAccessException
     */
    void insertSignUpData(ActivitySignUp tbActivitySignUp);

    /**
     * 更新活动报名表信息
     *
     * @param tbActivitySignUp
     * @throws DataAccessException
     */
    void updateSignUpDataById(ActivitySignUp tbActivitySignUp);

    /**
     * 删除活动报名表信息
     */
    void deleteSignUpDataById(String id);

    /**
     * 查询列表
     *
     * @param tbActivitySignUp
     * @return List
     */
    List<ActivitySignUp> querySignUpDataList(ActivitySignUp tbActivitySignUp);

    /**
     * 查询分页
     *
     * @param tbActivitySignUp
     * @return PageInfo
     */
    PageInfo<ActivitySignUp> querySignUpPageList(ActivitySignUpDto tbActivitySignUp);

    /**
     * 获取我报名过的活动
     */
    PageInfo<ActivityNotice> getMySignUpAct(ActivityNoticeDto activityNotice, UserInfo userInfo);
}
